package com.hankol.newretail.bean.goods_details
import android.annotation.SuppressLint
import com.baselibrary.base.BasicBean
import com.baselibrary.bean.SeckillActProductBean
import com.hankol.newretail.bean.MallLabelBean
import kotlinx.android.parcel.Parcelize

@SuppressLint("ParcelCreator")
@Parcelize
data class GoodsDetails(
    val addShopCartPower: Int,
    val buyBtnStatus: Int,
    val buyPolicyText: String,
    val categoryFrontList: List<CategoryFront>,
    val covers: List<String>,
    val daManReview: List<DaManReviewBean>,
    val desc: String,
    val policy: Policy,
    val shopInfo: ShopInfo,
    val horizontalBannerList: List<HorizontalBanner>,
    val mallSkuDtoList: List<MallSkuDto>,
    val mallTagDtoList: List<MallLabelBean>,
    val name: String,
    val postage: Int,
    val scorePayPower: Int,
    var seckillActProductExtDTO : SeckillActProductBean?=null,
    val shareLinkUrl: String,
    //val specExtData: SpecExtData,
    val spuId: Int,
    val subTitle: String,
    val videos: List<Video>,
    val virtualPayPersonNum: Int,
    val waterTipsPower: Int,
    val unitName: String,
    val waitPayOrderList: List<WaitPayOrderList>,
    val goodsStatus :Int,
    val cname : String,
    var hasSelectSpec : Boolean,
    var selectedFansPrice : Long,
    var selectedPrice : Long,
    var selectedSeckillFansPrice : Long,
    var selectedSeckillPrice : Long,
    var giftData : GoodsGiftBean,
    //分享小程序二维码
    var shareWxAppQrImgUrl: String = ""
): BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class WaitPayOrderList (
        val afterSaleStatus:Int,
        val dealerCode:String,
        val num:Int,
        val overtime:Long,
        val orderCode:String,
        val poId:Int,
        val price:Int,
        val receiveOvertime:Long,
        val score:Int,
        val shopId:Int,
        val shopName:String,
        val status:Int,
        val wineryId:Int,
        val orderListSkuDtoList:List<OrderListSkuDtoList>
):BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class OrderListSkuDtoList (
        val num:Int,
        val price:Int,
        val score:Int,
        val shopId:Int,
        val shopName:String,
        val skuCover:String,
        val skuId:Int,
        val specList:List<String>,
        val spuId:Int,
        val spuName:String,
        val giftType : Int
):BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class DaManReviewBean(
    var id :Int = 0,
    var cover:String="",
    var videoUrl:String="",
    var name:String=""
):BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class CategoryFront(
    val id: Int,
    val name: String,
    val sort: Int
): BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class HorizontalBanner(
    val description: String,
    val image: String
): BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class MallSkuDto(
    val covers: List<String>,
    val fansScore: Int,
    val id: Long,
    val score: Int,
    val selectByDef: Int,
    val showFansPrice: Long,
    val showPrice: Long,
    val specList: ArrayList<Spec>,
    val stock: Int
): BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class Policy(
    val allowBuyNum:Int,
    val limitNum:Int,
    val limitRangeFix:Int,
    val orderedNum:Int
): BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class ShopInfo(
        val shopId:Int,
        val image:String,
        val name:String,
        val provinceCode:String,
        val provinceName:String,
        val cityCode:String,
        val cityName:String,
        val countyCode:String,
        val countyName:String,
        val detailAddress:String,
        val longitude:String,
        val latitude:String,
        val wineryId:Long,
        val dealerCode:String
): BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class SpecExtData(
    val specNameMap: SpecNameMap,//一共有几个大规格，名称
    val specRelationMap: SpecRelationMap,//每个小规格下拥有的库存
    val specRenderMap: SpecRenderMap,//几个大规格下的内容ID
    val specValueMap: SpecValueMap//几个大规格下的内容描述
): BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class Video(
    val cover: String,
    val url: String
): BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class Spec(
    var name: String = "",
    var nameId: Long = 0L,
    var value: String = "",
    var valueId: Long = 0L,
    var haveStock:Boolean = true
): BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class SpecNameMap(
    val `169`: String
): BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class SpecRelationMap(
    val `560`: List<Int>
): BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class SpecRenderMap(
    val `169`: List<Int>
): BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class SpecValueMap(
    val `560`: String
): BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class FansApplyDataBean(
    val applyTime: Long,
    val applyType: Int,
    val auditMethod: Int,
    // 审核轮次0 待审 1 一轮审核完成 2 二轮完成即审核完成 -1 拒绝(重新提交审核变为待审)
    val auditRound: Int,
    val auditTime: Long,
    val belongWineCellar: String,
    val belongWineCellarId: Int,
    val birthdate: Long,
    val ctime: Long,
    val desc: String,
    val fansLevel: String,
    val fansNo: String,
    val fansType: Int,
    val height: String,
    val id: Int,
    val name: String,
    val nickName: String,
    val nickNamePic: String,
    val payEvidence: List<String>,
    val payExt: String,
    val payType: Int,
    val phone: String,
    val poloSize: String,
    val receiverAddress: String,
    val receiverName: String,
    val receiverPhone: String,
    val recommenderName: String,
    val recommenderNickName: String,
    val regionalHead: String,
    val remarks: String,
    val remittanceInfo: String,
    val residentialAddress: String,
    val sex: Int,
    val sourceChannel: Int,
    val sunscreenSize: String,
    val tags: String,
    val tshirtSize: String,
    val uid: Int,
    val userAddressAreaFirst: String,
    val userAddressAreaSecond: String,
    val userAddressAreaThree: String,
    val userAreaFirst: String,
    val userAreaSecond: String,
    val userAreaThree: String,
    val utime: Long,
    val weight: String
): BasicBean()

@Parcelize
data class SeckillSpuDetailSkuMapData(
        val stock: Int,
        val price: Int,
        val fansPrice: Int
): BasicBean()


